home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Revolution - Das Atari CD Magazin 1997
/
Revolution - Das Atari CD Magazin 1.iso
/
software
/
anwendng
/
clix360
/
clix_m.ext
< prev
next >
Wrap
Text File
|
1997-01-21
|
5KB
|
240 lines
#***********************************************************************
# Modula-2-Sourcen:
EXTENSION ".M", ".D", ".I", ".MOD", ".DEF", ".IMP" = {
COMMENT {DarkCyan, Light} = "(*", "*)";
REGION {} = '(', ')';
REGION {} = '[', ']';
REGION {} = '{', '}';
REGION {} = '"', '"';
REGION {} = "'", "'";
KEYS {DarkBlue, Light} =
CONST, TYPE, VAR, RECORD, ARRAY, PROCEDURE, BEGIN, END, IF, THEN, ELSE,
ELSIF, WHILE, WITH, CASE, REPEAT, UNTIL, LOOP, FOR;
# Weil es wichtig ist und man damit versteckte Rücksprünge besser sieht:
KEYS {DarkRed, Bold} =
RETURN, EXIT,
BREAK, CONTINUE,
"bkpt",
illegal;
KEYS {DarkGreen, Bold} =
BOOLEAN, SHORTINT, LONGINT, INTEGER, SHORTCARD, LONGCARD, CARDINAL,
ADDRESS, BYTE, REAL, LONGREAL, SHORTREAL, POINTER, BITSET, LONGSET,
CHARSET;
KEYS {DarkMagenta, Bold} =
SYSTEM, System;
SHORTCUT "adr" = "SYSTEM.ADR(\c)";
SHORTCUT "sa" = "SYSTEM.ADDRESS";
# und eine größere Menge Shortcuts
SHORTCUT "fo" = "FOR \c := TO DO\nEND;\n";
SHORTCUT "ie" = {\
IF \c THEN
ELSE
END; (* IF ELSE *)
};
SHORTCUT 'rf' = {RETURN FALSE;};
SHORTCUT 'rcs' = {\
(****************************************************************************
*
*
* $Source$
*
* $Revision$
*
* $Author$
*
* $Date$
*
* $State$
*
*****************************************************************************
* History:
*
* $Log$
*
*
****************************************************************************)
};
SHORTCUT 'opts' = {\
(* IMPLEMENTATION FÜR >>> Hänisch-Modula-2 <<< *)
(* *)
(* Durchgeführt von Steffen Engel *)
(* *)
(*$S- Stack-Checks *)
(*$I- keine Variablen-Initialisierung *)
(*$V- keine arithmetischen Kontrollen *)
(*$T- kein Bereichstest *)
(*$Y- keine Laufzeittests auf RETURN und CASE *)
(* *)
(*----------------------------------------------*)
};
SHORTCUT 'import' = {\
(* Systemabhängiges *)
opts\e
IMPORT SYSTEM, System;
(* Standard HM2-Libs *)
(* Magic-Lib *)
FROM MagicSys IMPORT
(* Const *) Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5,
Bit6, Bit7, Bit8, Bit9, Bit10, Bit11, Bit12,
Bit13, Bit14, Bit15,
(* Type *) LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
(* Magic-Tools *)
(* Eigene Libs *)
(* Projektlibs *)
};
SHORTCUT 'dm' = {\
DEFINITION MODULE \c;
rcs\e
import\e
END.
};
SHORTCUT 'im' = {\
IMPLEMENTATION MODULE \c;
rcs\e
import\e
BEGIN
END.
};
SHORTCUT 'mo' = {\
MODULE \c;
rcs\e
import\e
BEGIN
END.
};
SHORTCUT 'ar' = "ARRAY[\c..] OF ;";
SHORTCUT 'fo' = {\
FOR \c := TO DO
END;
};
SHORTCUT 'ie' = {\
IF \c THEN
ELSE
END; (* IF ELSE *)
};
SHORTCUT 'if' = {\
IF \c
THEN
END; (* IF *)
};
SHORTCUT 'p' = {\
PROCEDURE \c
BEGIN
END ;
};
SHORTCUT 're' = {\
RECORD
\c
END;
};
SHORTCUT 'ca' = {\
CASE \c OF
ELSE
END; (* CASE *)
};
SHORTCUT 'wh' = {\
WHILE \c DO
END; (* WHILE *)
};
SHORTCUT 'ru' = {\
REPEAT
UNTIL \c;
};
SHORTCUT 'lo' = {\
LOOP\c
END; (* LOOP *)
};
SHORTCUT 'wi' = {\
WITH \c DO
END; (* WITH *)
};
SHORTCUT 'rf' = {RETURN FALSE;};
SHORTCUT 'rt' = {RETURN TRUE;};
SHORTCUT 'port' = {\
FROM Portab IMPORT tCompiler, Compiler;
<*$?Compiler = Megamax:
(* Implementierung für >>> Megamax-Modula-2 <<< *)
(* *)
(* Durchgeführt von Steffen Engel *)
(* *)
(*$S- Stack-Checks *)
(*$R- kein Bereichstest *)
(*$Z+ Rückgabe in Registern *)
(* *)
(*----------------------------------------------*)
*>
<*$?Compiler = Haenisch:
(* Implementierung für >>> Hänisch-Modula-2 <<< *)
(* *)
(* Durchgeführt von Steffen Engel *)
(* *)
(*$S- Stack-Checks *)
(*$I- keine Variablen-Initialisierung *)
(*$V- keine arithmetischen Kontrollen *)
(*$T- kein Bereichstest *)
(*$Y- keine Laufzeittests auf RETURN und CASE *)
(* *)
(*----------------------------------------------*)
*>
};
SHORTCUT 'pf' = {\
VOID(stdio.printf('\c',
stdio.tAdressArray{NIL BY 9\}));};
}